home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-07-28 | 10.1 KB | 333 lines | [TEXT/MPS ] |
- // Copyright (c) 1993 Regents of the University of Michigan. All rights reserved.
-
- /* ==========================================================================
- Procs, Parse & Authi routines for the Dixie DSAM.
-
- Written by: Gavin Eadie • The University of Michigan Information Systems
- Phone: (313) 936-0816
- AppleLink: A67
- Internet: gavin@umich.edu
-
- History: Sep08/92 Split off from dixieDSAM.c (Gav)
- Dec17/92 1.0a8 Progress gets made !! (Gav)
- Jan04/93 1.0a10 First try with AOCE a13 ... Gav
- Jan13/93 1.0a12 First functioning with a13 ... Gav
- Jan27/93 1.0a14 Revisions for AOCE 1.0a14 ... Gav
- Mar10/93 1.0a16 all MacsBug calls removed ... Gav
- Mar16/93 1.0a17 revisions for AOCE 1.0b1 ... Gav
- Mar25/93 1.0a19 don't open IP path at boot time; wait for
- the first user action that needs it ... Gav
- Jun16/93 1.0a26 ask for enumerated information one record
- at a time ... Gav
- Jul12/93 1.0a33 take «ldapServerName» & «ldapSearchBase»
- from Setup Catalog ... Gav
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Jul26/93 1.0b1 "Find" works ... Gav
-
- ========================================================================== */
-
-
- #include "Headers.h"
-
- #define Parts_Max 8
-
- void Match_to_Target(RStringPtr , DirMatchWith , DirEnumChoices, char * );
-
- /* ==========================================================================
- Dir_Procs • ....
-
- -------------------------------------------------------------------------- */
- OSErr Dir_Procs(MyDashGlobals * dGlobals, DirParamBlockPtr ds_PB) {
- OSErr Cat_Error = kOCEParamErr;
-
- switch (ds_PB->header.reqCode) {
- // --------------------------------------------------------------------------
- //
- // D I R E C T O R Y I N F O R M A T I O N
- //
- // --------------------------------------------------------------------------
- //
- case kDirAddDSAMDirectory:
- Audit_PString('PROX', "\pkDirAddDSAMDirectory");
- Audit_RString('dir:', ds_PB->addDSAMDirectoryPB.directoryName);
-
- dGlobals->CSAM_CID = ds_PB->addDSAMDirectoryPB.dsamRecordCID;
- dGlobals->Cat_CID = ds_PB->addDSAMDirectoryPB.directoryRecordCID;
- OCECopyRString((RStringPtr)ds_PB->addDSAMDirectoryPB.directoryName,
- (RStringPtr)&dGlobals->Cat_Name, kDirectoryNameMaxBytes);
- dGlobals->Cat_Disc = ds_PB->addDSAMDirectoryPB.discriminator;
-
- Cat_Error = noErr;
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirGetDirectoryInfo:
- Audit_PString('PROX', "\pkDirGetDirectoryInfo");
-
- Cat_Error = noErr;
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirGetDirectoryIcon: {
- short i;
-
- Audit_PString('PROX', "\pkDirGetDirectoryIcon");
-
- for (i = 0; i < iconCount; i++) {
- if (ds_PB->getDirectoryIconPB.iconType == dGlobals->Icon[i].iconType &&
- dGlobals->Icon[i].iconHandle != nil) {
- BlockMove(*dGlobals->Icon[i].iconHandle,
- ds_PB->getDirectoryIconPB.iconBuffer,
- dGlobals->Icon[i].iconLength);
- Cat_Error = noErr;
- break;
- }
- }
-
- break;
- }
-
-
- // --------------------------------------------------------------------------
- //
- // D N O D E I N F O R M A T I O N
- //
- // --------------------------------------------------------------------------
- //
- case kDirGetDNodeAccessControlGet:
- Audit_PString('PROX', "\pkDirGetDNodeAccessControlGet");
-
- Cat_Error = noErr;
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirGetDNodeMetaInfo:
- Audit_PString('PROX', "\pkDirGetDNodeMetaInfo");
-
- ds_PB->getDNodeMetaInfoPB.metaInfo.info[0] = 0;
- ds_PB->getDNodeMetaInfoPB.metaInfo.info[1] = 0;
- ds_PB->getDNodeMetaInfoPB.metaInfo.info[2] = 0;
- ds_PB->getDNodeMetaInfoPB.metaInfo.info[3] = 0;
-
- Cat_Error = noErr;
- break;
-
-
- // --------------------------------------------------------------------------
- //
- // R E C O R D I N F O R M A T I O N
- //
- // --------------------------------------------------------------------------
- //
- case kDirAddRecord:
- Audit_PString('PROX', "\pkDirAddRecord");
-
- OCESetCreationIDtoNull(&ds_PB->addRecordPB.aRecord->local.cid);
-
- Cat_Error = noErr;
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirDeleteRecord:
- Audit_PString('PROX', "\pkDirDeleteRecord");
-
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirEnumerateGet: {
- Audit_PString('PROX', "\pkDirEnumerateGet");
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- // audit startingPoint and match criteria
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- if (nil == ds_PB->enumerateGetPB.startingPoint)
- Audit_PString('strt', "\p <none>");
- else {
- Audit_PString('strt', "\p <next>");
- Audit_LocalRecordID(&ds_PB->enumerateGetPB.startingPoint->u.recordIdentifier);
- }
-
- Audit_RString('Name', ds_PB->enumerateGetPB.nameMatchString);
- Audit_Number('Nam?', ds_PB->enumerateGetPB.matchNameHow);
- Audit_Number('Typ?', ds_PB->enumerateGetPB.matchTypeHow);
- Audit_Number('eNum', ds_PB->enumerateGetPB.enumFlags);
-
- Audit_AttrType_List(ds_PB->enumerateGetPB.typesList, ds_PB->enumerateGetPB.typeCount);
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- // set the sorting script, language, region and version (slrv) ...
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ds_PB->enumerateGetPB.responseSLRV.script = smRoman;
- ds_PB->enumerateGetPB.responseSLRV.language = langEnglish;
- ds_PB->enumerateGetPB.responseSLRV.regionCode = 0; // verUS;
- ds_PB->enumerateGetPB.responseSLRV.version = 0;
-
- break;
- }
-
- // --------------------------------------------------------------------------
- //
- case kDirFindRecordGet: {
- Audit_PString('PROX', "\pkDirFindRecordGet");
- Audit_RString('dir:', ds_PB->findRecordGetPB.directoryName);
-
- Audit_RecordID(ds_PB->findRecordGetPB.startingPoint);
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- // log the name and the type list, plus ancilliary information ...
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Audit_RString('Name', ds_PB->findRecordGetPB.nameMatchString);
- Audit_Number('Nam?', ds_PB->findRecordGetPB.matchNameHow);
- Audit_Number('Typ?', ds_PB->enumerateGetPB.matchTypeHow);
-
- Audit_AttrType_List(ds_PB->findRecordGetPB.typesList, ds_PB->findRecordGetPB.typeCount);
-
- break;
- }
-
- // --------------------------------------------------------------------------
- //
- case kDirLookupGet: {
- Audit_PString('PROX', "\pkDirLookupGet");
-
- Audit_AttrType_List((RStringPtr *)ds_PB->lookupGetPB.attrTypeList, ds_PB->lookupGetPB.attrTypeCount);
- Audit_Attribute(&ds_PB->lookupGetPB.startingAttribute);
-
- break;
- }
-
- // --------------------------------------------------------------------------
- //
- case kDirGetRecordAccessControlGet:
- Audit_PString('PROX', "\pkDirGetRecordAccessControlGet");
-
- Cat_Error = noErr;
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirGetRecordMetaInfo:
- Audit_PString('PROX', "\pkDirGetRecordMetaInfo");
-
- ds_PB->getRecordMetaInfoPB.metaInfo.info[0] = 0;
- ds_PB->getRecordMetaInfoPB.metaInfo.info[1] = 0;
- ds_PB->getRecordMetaInfoPB.metaInfo.info[2] = 0;
- ds_PB->getRecordMetaInfoPB.metaInfo.info[3] = 0;
-
- Cat_Error = noErr;
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirGetNameAndType:
- Audit_PString('PROX', "\pkDirGetNameAndType");
-
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirSetNameAndType:
- Audit_PString('PROX', "\pkDirSetNameAndType");
-
- break;
-
-
- // --------------------------------------------------------------------------
- //
- // A T T R I B U T E I N F O R M A T I O N
- //
- // --------------------------------------------------------------------------
- //
- case kDirAddAttributeValue:
- Audit_PString('PROX', "\pkDirAddAttributeValue");
-
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirDeleteAttributeValue:
- Audit_PString('PROX', "\pkDirDeleteAttributeValue");
-
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirChangeAttributeValue:
- Audit_PString('PROX', "\pkDirChangeAttributeValue");
-
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirVerifyAttributeValue:
- Audit_PString('PROX', "\pkDirVerifyAttributeValue");
-
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirEnumerateAttributeTypesGet:
- Audit_PString('PROX', "\pkDirEnumerateAttributeTypesGet");
-
- if (nil == ds_PB->enumerateAttributeTypesGetPB.startingAttrType)
- Audit_PString('strt', "\p <none>");
- else
- Audit_RString('strt', ds_PB->enumerateAttributeTypesGetPB.startingAttrType);
-
- Cat_Error = noErr;
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirGetAttributeAccessControlGet:
- Audit_PString('PROX', "\pkDirGetAttributeAccessControlGet");
-
- Cat_Error = noErr;
- break;
-
- // --------------------------------------------------------------------------
- //
- case kDirDeleteAttributeType:
- Audit_PString('PROX', "\pkDirDeleteAttributeType");
-
- break;
-
- // --------------------------------------------------------------------------
- //
- // A L I A S I N F O R M A T I O N
- //
- // --------------------------------------------------------------------------
- //
- case kDirAddAlias:
- Audit_PString('PROX', "\pkDirAddAlias");
-
- break;
-
-
- // --------------------------------------------------------------------------
- //
- // M I S C E L L A N I O U S I N F O R M A T I O N
- //
- // --------------------------------------------------------------------------
- //
- case kDirAbort:
- Audit_PString('PROX', "\pkDirAbort");
-
- break;
-
-
- // --------------------------------------------------------------------------
- //
- default:
- Audit_PString('PROX', "\p< unknown >");
- Cat_Error = kOCEParamErr;
- }
-
- return (Cat_Error);
- }
-